/**
 * 消息推送服务器的地址.
 */
var MSG_PUSH_URI = "10.52.10.115:8080/msgpush"; //"10.51.111.8:8080/msgpush";

/**
 * 对WebSocket使用的简化，实现接收服务端推送的消息.
 * @author chenxiangbai <br>
 * @version 1.0.0 2013-11-14 下午5:23:27 <br>
 */
var YGWebSocket = function () {
    var result = {};

    /**
     * 监听服务端的消息推送.
     * @param userId 当前接收消息的用户ID.
     * @param userName 当前接收消息的用户登录名称.
     * @param password 当前接收消息的用户密码.
     * @param listenFlags 客户端监听的消息类型标志，多个值用逗号连接.
     * @param callbak 客户端收到消息的回调事件.
     */
    result.openMsgPush = function (userId, userName, password, listenFlags, callbak) {
        //创建WebSocket
        var webSocket = new WebSocket('ws://' + MSG_PUSH_URI + '/YGWebSocket?userId='
            + userId
            + "&userName=" + userName
            + "&password=" + password
            + "&listenFlags=" + listenFlags);

        //与服务端建立连接失败的回调
        webSocket.onerror = function (event) {
//			alert("与消息服务器建立连接出错");
        };

        // 与服务端建立连接成功的回调
        webSocket.onopen = function (event) {
            //alert("Connection established");
        };

        //服务端关闭连接的回调
        webSocket.onclose = function (event) {
            //alert("Connection closed");
        };

        // 定义Message事件处理函数(收取服务端消息并处理)  
        webSocket.onmessage = function (event) {
            var data = $.parseJSON(event.data);
            callbak(data);
        };

        // 返回关闭的函数, 直接调用则关闭socket
        return function () {
            webSocket.close();
        };
    };

    return result;
}();





